import axios from 'axios';
import { Injectable, NotFoundException } from '@nestjs/common';
import { lineInfo } from './component/lineInfo';
import { busInfo } from './component/busInfo';
import { allLineInfo } from './component/allLineInfo';
import { busStationInfo } from './component/busStationInfo';
import { isEmpty } from 'lodash';

@Injectable()
export class WupingBusService {
  // 查找公交线路line的信息
  async getLineInfo(line: number) {
    return await lineInfo(line);
  }
  // 查找lineNo上的运行公交车信息
  async getBusInfo(line: number) {
    return await busInfo(line);
  }
  // 查询所有公交线路信息
  async getAllLineInfo() {
    return await allLineInfo();
  }

  searchBusLine(name: string) {
    const fixStationName = {
      '19940': '汽车客运中心站-上行',
      '19941': '交通综合执法大队-上行',
      '19942': '公园宾馆-上行',
      '19943': '碧水公园-上行',
      '19944': '财保公司-上行',
      '19945': '附小站-上行',
      '19946': '实验中学-上行',
      '19947': '三中-上行',
      '19948': '联发花园-上行',
      '19949': '市民服务中心-上行',
      '19950': '县政府-下行',
      '19951': '辉业超市-下行',
      '19952': '老汽车站-下行',
      '19953': '城区加油站-下行',
      '19954': '公园宾馆-下行',
      '19955': '交通综合执法大队-下行',
      '19956': '汽车客运中心站',
      '21616': '旅游集散中心（客都汇）-下行',
      '21617': '检察院-下行',
      '21618': '职专-下行',
      '21619': '东门市场-下行',
      '21620': '辉业超市-下行',
      '21621': '中心街-下行',
      '21622': '宏祥华都（河滨公园）-下行',
      '21623': '二中（皮肤病医院）-下行',
      '21624': '一中（中医院）-下行',
      '21625': '公安局（第二附小）-下行',
      '21626': '平通路口-下行',
      '21627': '颐养家园（古楼岗）-下行',
      '21628': '始通村（古楼岗）-下行',
      '21629': '儿童乐园-上行',
      '21630': '福祥（香樟）小区-下行',
      '21631': '福祥（香樟）小区-下行',
      '21632': '儿童乐园-上行',
      '21633': '平通路口-上行',
      '21634': '公安局（第二附小）-上行',
      '21635': '一中（中医院）-上行',
      '21636': '二中（皮肤病医院）-上行',
      '21637': '宏祥华都（河滨公园）-上行',
      '21638': '中心街-上行',
      '21639': '辉业超市-上行',
      '21640': '东门市场-上行',
      '21641': '职专-上行',
      '21642': '检察院-上行',
      '21643': '旅游集散中心（客都汇）',
      '22049': '汽车客运中心站-上行',
      '22050': '交通综合执法大队-上行',
      '22051': '公园宾馆-上行',
      '22052': '城区加油站-上行',
      '22053': '金源城市花园（老汽车站）-上行',
      '22054': '辉业超市-上行',
      '22055': '县政府-上行',
      '22056': '市民服务中心-下行',
      '22057': '联发花园-下行',
      '22058': '三中-下行',
      '22059': '实验中学-下行',
      '22060': '附小站-下行',
      '22061': '财保公司-下行',
      '22062': '碧水公园-下行',
      '22063': '公园宾馆-下行',
      '22064': '交通综合执法大队-下行',
      '22065': '汽车客运中心站',
      '22428': '汽车客运中心站-上行',
      '22429': '交通综合执法大队-上行',
      '22430': '公园宾馆-上行',
      '22431': '城区加油站-上行',
      '22432': '河东新村-上行',
      '22433': '电信公司（体育馆）-上行',
      '22434': '联发花园-上行',
      '22435': '三中-上行',
      '22436': '文博园（仁济医院）-上行',
      '22437': '中远上城-下行',
      '22438': '实验幼儿园-下行',
      '22439': '联发鑫华庭-上行',
      '22440': '农家苑-上行',
      '22441': '吊鱼坑-上行',
      '22442': '三口塘-上行',
      '22443': '万佳小区-上行',
      '22444': '五里村-上行',
      '22445': '万安镇政府-上行',
      '22446': '万安镇政府-下行',
      '22447': '五里村-下行',
      '22448': '万佳小区-下行',
      '22449': '三口塘-下行',
      '22450': '吊鱼坑-下行',
      '22451': '农家苑-下行',
      '22452': '联发鑫华庭-下行',
      '22453': '实验幼儿园-上行',
      '22454': '中远上城-上行',
      '22455': '文博园（仁济医院）-下行',
      '22456': '三中-下行',
      '22457': '联发花园-下行',
      '22458': '电信公司（体育馆）-下行',
      '22459': '河东新村-下行',
      '22460': '城区加油站-下行',
      '22461': '公园宾馆-下行',
      '22462': '交通综合执法大队-下行',
      '22463': '汽车客运中心站',
      '23335': '武平县公交首末站-上行',
      '23336': '龙洲物流园区-上行',
      '23337': '鑫泰加油站-上行',
      '23338': '汽车客运中心站-上行',
      '23339': '交通综合执法大队-上行',
      '23340': '公园宾馆-上行',
      '23341': '城区加油站-上行',
      '23342': '金源城市花园（老汽车站）-上行',
      '23343': '辉业超市-上行',
      '23344': '东门市场-上行',
      '23345': '东方巴黎-上行',
      '23346': '壹号公馆-上行',
      '23347': '森林公园东-上行',
      '23348': '教育基地（城区社区卫生服务中心）-上行',
      '23349': '旅游集散中心（客都汇）-上行',
      '23350': '电商创业园（法院）-上行',
      '23351': '文山幼儿园（城厢派出所）-上行',
      '23352': '城厢中学-上行',
      '23353': '东云村（尧禄村路口）-上行',
      '23354': '东云村-上行',
      '23355': '尧禄村-上行',
      '23356': '尧禄村-下行',
      '23357': '东云村-下行',
      '23358': '东云村（尧禄村路口）-下行',
      '23359': '城厢中学-下行',
      '23360': '文山幼儿园（城厢派出所）-下行',
      '23361': '电商创业园（法院）-下行',
      '23362': '旅游集散中心（客都汇）-下行',
      '23363': '教育基地（城区社区卫生服务中心）-下行',
      '23364': '森林公园东-下行',
      '23365': '壹号公馆-下行',
      '23366': '东方巴黎-下行',
      '23367': '东门市场-下行',
      '23368': '辉业超市-下行',
      '23369': '金源城市花园（老汽车站）-下行',
      '23370': '城区加油站-下行',
      '23371': '公园宾馆-下行',
      '23372': '交通综合执法大队-下行',
      '23373': '汽车客运中心站-下行',
      '23374': '鑫泰加油站-下行',
      '23375': '龙洲物流园区-下行',
      '23376': '武平县公交首末站',
      '27913': '武平县公交首末站-上行',
      '27914': '龙洲物流园区-上行',
      '27915': '鑫泰加油站-上行',
      '27916': '汽车客运中心站-上行',
      '27917': '交通综合执法大队-上行',
      '27918': '公园宾馆-上行',
      '27919': '城区加油站-上行',
      '27920': '金源城市花园（老汽车站）-上行',
      '27921': '辉业超市-上行',
      '27922': '紫金大酒店-上行',
      '27923': '城厢镇政府-上行',
      '27924': '育才幼儿园-上行',
      '27925': '马鞍桥-上行',
      '27926': '城区社区卫生服务中心（县档案局）-下行',
      '27927': '旅游集散中心（客都汇）-上行',
      '27928': '电商创业园（法院）-上行',
      '27929': '文山幼儿园（城厢派出所）-上行',
      '27930': '城厢中学-上行',
      '27931': '东云村（尧禄村路口）-上行',
      '27932': '东云村-上行',
      '27933': '梁野山路口-上行',
      '27934': '梁野山风景区-上行',
      '27935': '梁野山风景区-下行',
      '27936': '梁野山路口-下行',
      '27937': '东云村-下行',
      '27938': '东云村（尧禄村路口）-下行',
      '27939': '城厢中学-下行',
      '27940': '文山幼儿园（城厢派出所）-下行',
      '27941': '电商创业园（法院）-下行',
      '27942': '旅游集散中心（客都汇）-上行',
      '27943': '城区社区卫生服务中心（县档案局）-下行',
      '27944': '马鞍桥-下行',
      '27945': '育才幼儿园-下行',
      '27946': '城厢镇政府-下行',
      '27947': '紫金大酒店-下行',
      '27948': '辉业超市-下行',
      '27949': '金源城市花园（老汽车站）-下行',
      '27950': '城区加油站-下行',
      '27951': '公园宾馆-下行',
      '27952': '交通综合执法大队-下行',
      '27953': '汽车客运中心站-下行',
      '27954': '鑫泰加油站-下行',
      '27955': '龙洲物流园区-下行',
      '27956': '武平县公交首末站',
      '35055': '梁野山风景区-下行',
      '35056': '梁野山路口-下行',
      '35057': '东云村-下行',
      '35058': '东云村（尧禄村路口）-下行',
      '35059': '城厢中学-下行',
      '35060': '文山幼儿园（城厢派出所）-下行',
      '35061': '电商创业园（法院）-下行',
      '35062': '旅游集散中心（客都汇）-下行',
      '35063': '教育基地-下行',
      '35064': '森林公园东-下行',
      '35065': '壹号公馆-下行',
      '35066': '东方巴黎北-下行',
      '35067': '宏大建设（老自来水厂）-下行',
      '35068': '民政局（供电公司）-下行',
      '35069': '成功水岸-下行',
      '35070': '树子坝公园-下行',
      '35071': '财保公司-下行',
      '35072': '附小（工业路）-下行',
      '35073': '碧水绿洲-下行',
      '35074': '碧水豪庭-下行',
      '35075': '一路顺职业培训学校-下行',
      '35076': '长青站-下行',
      '35077': '千鹭湖-下行',
      '35078': '千鹭湖-上行',
      '35079': '长青站-上行',
      '35080': '一路顺职业培训学校-上行',
      '35081': '碧水豪庭-上行',
      '35082': '碧水绿洲-上行',
      '35083': '附小（工业路）-上行',
      '35084': '财保公司-上行',
      '35085': '树子坝公园-上行',
      '35086': '成功水岸-上行',
      '35087': '民政局（供电公司）-上行',
      '35088': '宏大建设（老自来水厂）-上行',
      '35089': '东方巴黎北-上行',
      '35090': '壹号公馆-上行',
      '35091': '森林公园东-上行',
      '35092': '教育基地-上行',
      '35093': '旅游集散中心（客都汇）-上行',
      '35094': '电商创业园（法院）-上行',
      '35095': '文山幼儿园（城厢派出所）-上行',
      '35096': '城厢中学-上行',
      '35097': '东云村（尧禄村路口）-上行',
      '35098': '东云村-上行',
      '35099': '梁野山路口-上行',
      '35100': '梁野山风景区',
      '37443': '汽车客运中心站-上行',
      '37444': '交通综合执法大队-上行',
      '37445': '锦绣城-上行',
      '37446': '实验小学河东分校路口-上行',
      '37447': '农贸市场-上行',
      '37448': '东方巴黎-上行',
      '37449': '东方新城-下行',
      '37450': '城厢镇政府-下行',
      '37451': '紫金大酒店-下行',
      '37452': '兴贤坊-下行',
      '37453': '中成汇金-上行',
      '37454': '市民服务中心-上行',
      '37455': '实验幼儿园-上行',
      '37456': '中远上城-上行',
      '37457': '中央公园（水木年华）-下行',
      '37458': '文搏园（仁济医院）-下行',
      '37459': '三中-下行',
      '37460': '实验中学-下行',
      '37461': '附小站-下行',
      '37462': '财保公司-下行',
      '37463': '附小（工业路）-下行',
      '37464': '碧水绿洲-下行',
      '37465': '碧水豪庭-下行',
      '37466': '工业园区管理委员会-下行',
      '37467': '长青站-下行',
      '37468': '钢泓科技-下行',
      '37469': '龙兴木业-下行',
      '37470': '凹坑路口（双兴公司）-下行',
      '37471': '凹坑路口（双兴公司）-上行',
      '37472': '龙兴木业-上行',
      '37473': '钢泓科技-上行',
      '37474': '长青站-上行',
      '37475': '工业园区管理委员会-上行',
      '37476': '碧水豪庭-上行',
      '37477': '碧水绿洲-上行',
      '37478': '附小（工业路）-上行',
      '37479': '财保公司-上行',
      '37480': '附小站-上行',
      '37481': '实验中学-上行',
      '37482': '三中-上行',
      '37483': '文搏园（仁济医院）-上行',
      '37484': '中央公园（水木年华）-上行',
      '37485': '中远上城-下行',
      '37486': '实验幼儿园-下行',
      '37487': '市民服务中心-下行',
      '37488': '中成汇金-上行',
      '37489': '兴贤坊-上行',
      '37490': '紫金大酒店-上行',
      '37491': '城厢镇政府-上行',
      '37492': '东方新城-下行',
      '37493': '东方巴黎-下行',
      '37494': '农贸市场-下行',
      '37495': '实验小学河东分校路口-下行',
      '37496': '锦绣城-下行',
      '37497': '交通综合执法大队-下行',
      '37498': '汽车客运中心站',
      '43749': '汽车客运中心站-上行',
      '43750': '交通综合执法大队-上行',
      '43751': '公园宾馆-上行',
      '43752': '城区加油站-上行',
      '43753': '金源城市花园（老汽车站）-上行',
      '43754': '辉业超市-上行',
      '43755': '县政府-上行',
      '43756': '联发鑫华庭-上行',
      '43757': '实验小学鼓楼校区（农家苑）-上行',
      '43758': '吊鱼坑-上行',
      '43759': '三口塘-上行',
      '43760': '万佳小区-上行',
      '43761': '五里村-上行',
      '43762': '万安镇政府-上行',
      '43763': '上圳村-上行',
      '43764': '风吹口-上行',
      '43765': '捷文村-上行',
      '43766': '捷文村-下行',
      '43767': '风吹口-下行',
      '43768': '上圳村-下行',
      '43769': '万安镇政府-下行',
      '43770': '五里村-下行',
      '43771': '万佳小区-下行',
      '43772': '三口塘-下行',
      '43773': '吊鱼坑-下行',
      '43774': '实验小学鼓楼校区（农家苑）-下行',
      '43775': '联发鑫华庭-下行',
      '43776': '县政府-下行',
      '43777': '辉业超市-下行',
      '43778': '金源城市花园（老汽车站）-下行',
      '43779': '城区加油站-下行',
      '43780': '公园宾馆-下行',
      '43781': '交通综合执法大队-下行',
      '43782': '汽车客运中心站',
    };
    const stationInfo = [];

    busStationInfo.forEach((busLine, index) => {
      busLine.map((element) => {
        element.stationName = fixStationName[element.stationId];
        // new RegExp(`${name}`).test(element.stationName)
        if (element.stationName == name) {
          stationInfo.push({
            lineNo: index,
            stationNo: element.labelNo,
            stationId: element.stationId,
          });
        }
      });
    });
    if (isEmpty(stationInfo)) throw new NotFoundException("can't find lineNo");
    return stationInfo;
  }

  async showBusOfStation(name: string) {
    const stationInfo = this.searchBusLine(name);
    const URL = 'https://www.longyan.cn/bus_wp/timerBus.json';
    const lineId: number[] = [629, 635, 637, 638, 639, 640, 663, 664, 665];
    let busInfo = [];

    await axios
      .all(
        stationInfo.map((station) =>
          axios.get(URL, {
            params: {
              getBusInfoLiveTimeData: true,
              lineId: lineId[station['lineNo']],
              isUpDown: 0,
            },
          }),
        ),
      )
      .then((res) => {
        console.log(res);
        busInfo = res.map((i) => i.data);
      });
    return busInfo;
  }
}
